home *** CD-ROM | disk | FTP | other *** search
/ CICA 1995 August / CICA - The Ultimate Collection of Shareware for Windows (Disc 2) (August 1995).iso / disc2 / patches / symantec / rtlinc.exe / FLTENV.H < prev    next >
C/C++ Source or Header  |  1993-05-19  |  2KB  |  78 lines

  1. /*_ fltenv.h   Sat Mar 30 1991   Modified by: Walter Bright */
  2.  
  3. #ifndef __FLTENV_H
  4. #define __FLTENV_H    1
  5.  
  6. #if __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. #ifdef __STDC__
  11. #define __CDECL
  12. #define __STDCALL
  13. #else
  14. #define __CDECL __cdecl
  15. #define __STDCALL __stdcall
  16. #endif
  17.  
  18. #if __OS2__ && __INTSIZE == 4
  19. #define __CLIB    __STDCALL
  20. #else
  21. #define __CLIB    __CDECL
  22. #endif
  23.  
  24. /* floating point environment    */
  25. typedef struct __fenv_t
  26. {   /* mimic 8087 status    */
  27.     unsigned short status;
  28.     unsigned short control;
  29.     unsigned short round;    /* copy of just the rounding bits    */
  30.     unsigned short reserved[2];    /* for future expansion            */
  31. } fenv_t;
  32.  
  33. typedef int fexcept_t;        /* exception flag        */
  34.  
  35. /* Exceptions        */
  36. #define FE_INVALID    1
  37. #define FE_DENORMAL    2
  38. #define FE_DIVBYZERO    4
  39. #define FE_OVERFLOW    8
  40. #define FE_UNDERFLOW    0x10
  41. #define FE_INEXACT    0x20
  42. #define FE_ALL_EXCEPT    0x3F    /* OR of all exceptions        */
  43.  
  44. /* Rounding directions    */
  45. #define FE_TONEAREST    0
  46. #define FE_UPWARD    0x800
  47. #define FE_DOWNWARD    0x400
  48. #define FE_TOWARDZERO    0xC00
  49.  
  50. extern fenv_t __CDECL FE_DFL_ENV;    /* default floating point environment    */
  51.  
  52. /* Rounding precision    */
  53. #define FE_FLTPREC    0
  54. #define FE_DBLPREC    0x200
  55. #define FE_LDBLPREC    0x300
  56.  
  57. int  __CDECL fetestexcept(int excepts);
  58. int  __CDECL feraiseexcept(int excepts);
  59. int  __CDECL feclearexcept(int excepts);
  60. int  __CDECL fegetexcept(fexcept_t *flagp,int except);
  61. int  __CDECL fesetexcept(const fexcept_t *flagp,int except);
  62. int  __CDECL fegetround(void);
  63. int  __CDECL fesetround(int round);
  64. int  __CDECL fegetprec(void);
  65. int  __CDECL fesetprec(int prec);
  66. void __CDECL fegetenv(fenv_t *envp);
  67. void __CDECL fesetenv(const fenv_t *envp);
  68. void __CDECL feprocentry(fenv_t *envp);
  69. void __CDECL feprocexit(const fenv_t *envp);
  70.  
  71. #if __cplusplus
  72. }
  73. #endif
  74.  
  75. #endif /* __FLTENV_H */
  76.  
  77.  
  78.